﻿/**
 * 暂时屏蔽 为了编译整个工程
 */
package labox.innovation.gameserver.communitybbs.BB;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javolution.util.FastList;
import javolution.util.FastMap;
import labox.innovation.db.core.L2DatabaseFactory;
//import labox.innovation.gameserver.communitybbs.Manager.ForumsBBSManager;
//import labox.innovation.gameserver.communitybbs.Manager.TopicBBSManager;

public class Forum {
	//type
	public static final int ROOT = 0;

	public static final int NORMAL = 1;

	public static final int CLAN = 2;

	public static final int MEMO = 3;

	public static final int MAIL = 4;

	//perm
	public static final int INVISIBLE = 0;

	public static final int ALL = 1;

	public static final int CLANMEMBERONLY = 2;

	public static final int OWNERONLY = 3;

	private static Logger _log = LoggerFactory.getLogger(Forum.class.getName());

	private List<Forum> _children;

//	private Map<Integer, Topic> _topic;
//
//	private int _forumId;
//
//	private String _forumName;
//
//	//private int _ForumParent;
//	private int _forumType;
//
//	private int _forumPost;
//
//	private int _forumPerm;
//
//	private Forum _fParent;
//
//	private long _ownerID;
//
//	private boolean _loaded = false;
//
//	/**
//	 * Creates new instance of Forum. When you create new forum, use
//	 * {@link labox.innovation.gameserver.communitybbs.Manager.ForumsBBSManager#
//	 * addForum(labox.innovation.gameserver.communitybbs.BB.Forum)} to add forum
//	 * to the forums manager.
//	 *
//	 * @param i
//	 */
//	public Forum(int Forumid, Forum FParent) {
//		_forumId = Forumid;
//		_fParent = FParent;
//		_children = new FastList<Forum>();
//		_topic = new FastMap<Integer, Topic>();
//
//		/*load();
//		 getChildren();	*/
//	}
//
//	/**
//	 * @param name
//	 * @param parent
//	 * @param type
//	 * @param perm
//	 */
//	public Forum(String name, Forum parent, int type, int perm, long OwnerID) {
//		_forumName = name;
//		_forumId = ForumsBBSManager.getInstance().getANewID();
//		//_ForumParent = parent.getID();
//		_forumType = type;
//		_forumPost = 0;
//		_forumPerm = perm;
//		_fParent = parent;
//		_ownerID = OwnerID;
//		_children = new FastList<Forum>();
//		_topic = new FastMap<Integer, Topic>();
//		parent._children.add(this);
//		ForumsBBSManager.getInstance().addForum(this);
//		_loaded = true;
//	}
//
//	/**
//	 *
//	 */
//	private void load() {
//		Connection con = null;
//		try {
//			con = L2DatabaseFactory.getInstance().getConnection();
//			PreparedStatement statement = con.prepareStatement("SELECT * FROM forums WHERE forum_id=?");
//			statement.setInt(1, _forumId);
//			ResultSet result = statement.executeQuery();
//
//			if (result.next()) {
//				_forumName = result.getString("forum_name");
//				//_ForumParent = result.getInt("forum_parent");
//				_forumPost = result.getInt("forum_post");
//				_forumType = result.getInt("forum_type");
//				_forumPerm = result.getInt("forum_perm");
//				_ownerID = result.getInt("forum_owner_id");
//			}
//			result.close();
//			statement.close();
//		} catch (Exception e) {
//			_log.warning("data error on Forum " + _forumId + " : " + e);
//			e.printStackTrace();
//		} finally {
//			try {
//				con.close();
//			} catch (Exception e) {
//			}
//		}
//		try {
//			con = L2DatabaseFactory.getInstance().getConnection();
//			PreparedStatement statement = con.prepareStatement("SELECT * FROM topic WHERE topic_forum_id=? ORDER BY topic_id DESC");
//			statement.setInt(1, _forumId);
//			ResultSet result = statement.executeQuery();
//
//			while (result.next()) {
//				Topic t = new Topic(Topic.ConstructorType.RESTORE, result.getInt("topic_id"), result.getInt("topic_forum_id"), result.getString("topic_name"), result.getLong("topic_date"), result.getString("topic_ownername"), result.getInt("topic_ownerid"), result.getInt("topic_type"), result.getInt("topic_reply"));
//				_topic.put(t.getID(), t);
//				if (t.getID() > TopicBBSManager.getInstance().getMaxID(this)) {
//					TopicBBSManager.getInstance().setMaxID(t.getID(), this);
//				}
//			}
//			result.close();
//			statement.close();
//		} catch (Exception e) {
//			_log.warning("data error on Forum " + _forumId + " : " + e);
//			e.printStackTrace();
//		} finally {
//			try {
//				con.close();
//			} catch (Exception e) {
//			}
//		}
//	}
//
//	/**
//	 *
//	 */
//	private void getChildren() {
//		Connection con = null;
//		try {
//			con = L2DatabaseFactory.getInstance().getConnection();
//			PreparedStatement statement = con.prepareStatement("SELECT forum_id FROM forums WHERE forum_parent=?");
//			statement.setInt(1, _forumId);
//			ResultSet result = statement.executeQuery();
//
//			while (result.next()) {
//				Forum f = new Forum(result.getInt("forum_id"), this);
//				_children.add(f);
//				ForumsBBSManager.getInstance().addForum(f);
//			}
//			result.close();
//			statement.close();
//		} catch (Exception e) {
//			_log.warning("data error on Forum (children): " + e);
//			e.printStackTrace();
//		} finally {
//			try {
//				con.close();
//			} catch (Exception e) {
//			}
//		}
//
//	}
//
//	public int getTopicSize() {
//		vload();
//		return _topic.size();
//	}
//
//	public Topic getTopic(int j) {
//		vload();
//		return _topic.get(j);
//	}
//
//	public void addTopic(Topic t) {
//		vload();
//		_topic.put(t.getID(), t);
//	}
//
//	/**
//	 * @return
//	 */
//	public int getID() {
//		return _forumId;
//	}
//
//	public String getName() {
//		vload();
//		return _forumName;
//	}
//
//	public int getType() {
//		vload();
//		return _forumType;
//	}
//
//	/**
//	 * @param name
//	 * @return
//	 */
//	public Forum getChildByName(String name) {
//		vload();
//		for (Forum f : _children) {
//			if (f.getName().equals(name)) {
//				return f;
//			}
//		}
//		return null;
//	}
//
//	/**
//	 * @param id
//	 */
//	public void rmTopicByID(int id) {
//		_topic.remove(id);
//
//	}
//
//	/**
//	 *
//	 */
//	public void insertIntoDb() {
//		Connection con = null;
//		try {
//			con = L2DatabaseFactory.getInstance().getConnection();
//			PreparedStatement statement = con.prepareStatement("INSERT INTO forums (forum_id,forum_name,forum_parent,forum_post,forum_type,forum_perm,forum_owner_id) VALUES (?,?,?,?,?,?,?)");
//			statement.setInt(1, _forumId);
//			statement.setString(2, _forumName);
//			statement.setInt(3, _fParent.getID());
//			statement.setInt(4, _forumPost);
//			statement.setInt(5, _forumType);
//			statement.setInt(6, _forumPerm);
//			statement.setLong(7, _ownerID);
//			statement.execute();
//			statement.close();
//		} catch (Exception e) {
//			_log.warning("error while saving new Forum to db " + e);
//		} finally {
//			try {
//				con.close();
//			} catch (Exception e) {
//			}
//		}
//	}
//
//	/**
//	 *
//	 */
//	public void vload() {
//		if (_loaded == false) {
//			load();
//			getChildren();
//			_loaded = true;
//		}
//	}
}